Godot3.5 Shaderを使ってスプライトを白く光らせる
https://www.youtube.com/watch?v=ctevHwoRl24
ダメージを与えた時など、敵を一時的に白く光らせたい時の shader
code:shader
shader_type canvas_item;
uniform vec4 flash_color: hint_color = vec4(1.0);
uniform float flash_modifier: hint_range(0.0, 1.0) = 1;
void fragment(){
vec4 color = texture(TEXTURE, UV);
color.rgb = mix(color.rgb, flash_color.rgb, flash_modifier);
COLOR = color;
}
適用する
uniform で定義した変数を、スクリプトから変動させる
ダメージを受けた時に、set_shader_param()を実行する
sprite.material.set_shader_param("flash_modifier", 1)
timer など使って値を元に戻す
同じshaderを使って、分身時のシルエット表示などにも使える
https://gyazo.com/1bd30ad14aa421e3d8de74b6d4e5e7a3
(画像は上のYoutube動画より)